package br.com.vacinne.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import br.com.vacinne.Entity.UsuarioEntity;
import br.com.vacinne.Entity.VacinaEntity;
import br.com.vacinne.dao.BDCore;

public class DB {
	
	private SQLiteDatabase db;
	
	public DB(Context contex){
		BDCore auxDb = new BDCore(contex);
		db = auxDb.getWritableDatabase();
	}
	
	 
	public void insert(Object obj, int num){
		ContentValues valores = new ContentValues();

		
		if (num == 1) {
				VacinaEntity vacina = (VacinaEntity) obj;
				valores.put("nome", vacina.getNomeVacina());
				valores.put("descricao", vacina.getDescricao());
				valores.put("dataVacina", vacina.getDataVacina());
				valores.put("dataPrazo", vacina.getDataPrazo());
				db.insert("vacina", null, valores);
				
			}
		
		if (num == 2) {
			UsuarioEntity usuario = (UsuarioEntity) obj;
			valores.put("nome", usuario.getNome());
			valores.put("email", usuario.getEmail());
			valores.put("dataNascimento", usuario.getDataNascimento());
			valores.put("sexo", usuario.getSexo());
			
			db.insert("usuario", null, valores);
		}
	}
	
	public void update(Object obj, int num){
		ContentValues valores = new ContentValues();
		
		if (num == 1) {
			VacinaEntity vacina = new VacinaEntity();
			valores.put("nome", vacina.getNomeVacina());
			valores.put("descricao", vacina.getDescricao());
			valores.put("dataVacina", vacina.getDataVacina());
			valores.put("dataPrazo", vacina.getDataPrazo());
			
			db.update("usuario", valores, "idVacina = ?", new String[]{""+vacina.getIdVacina()});
		}
		
		
		if (num == 2) {
			UsuarioEntity usuario = new UsuarioEntity();
			valores.put("nome", usuario.getNome());
			valores.put("email", usuario.getEmail());
			valores.put("dataNascimento", usuario.getDataNascimento().toString());
			valores.put("sexo", usuario.getSexo());
			
			db.update("usuario", valores, "idUsuario = ?", new String[]{""+usuario.getIdUsuario()});
		}
	}
	
	public void delete(Object obj, int num){
		
		if (num == 1) {
			VacinaEntity vacina = new VacinaEntity();			
			db.delete("vacina", "idVacina = "+vacina.getIdVacina(), null);
		}
		
		if (num == 2) {
			UsuarioEntity usuario = new UsuarioEntity();
			db.delete("usuario", "idUsuario = "+usuario.getIdUsuario(), null);
		}
	}

	public List<UsuarioEntity> list(){
		
		List<UsuarioEntity> list = new ArrayList<UsuarioEntity>();
		String[] colunas = new String[]{"idUsuario", "nome", "email", "dataNascimento", "sexo"};
		
		Cursor cursor = db.query("usuario", colunas,/**WEHRE */ null,/** Subistitui ?*/ null, /**groupBy */null,/**having*/ null, "nome ASC");
		
		if(cursor.getCount() > 0){
			cursor.moveToFirst();
			
			UsuarioEntity user = new UsuarioEntity();
			//VacinaEntity vacina = new VacinaEntity();
			
			do{
				user.setIdUsuario(cursor.getInt(0));
				user.setNome(cursor.getString(1));
				user.setEmail(cursor.getString(2));
				user.setDataNascimento(cursor.getString(3));
				user.setSexo(cursor.getString(4));
//					vacina.setIdVacina(cursor.getInt(0));
//					vacina.setNomeVacina(cursor.getString(1));
//					vacina.setDescricao(cursor.getString(2));
//					vacina.setDataVacina(cursor.getString(3));
//					vacina.setDataPrazo(cursor.getString(4));
//				
				list.add(user);
			}while(cursor.moveToNext());
		}
	cursor.close();
		return(list);
	}
	
	public void verificaUsuario(Object obj){
		
		UsuarioEntity user = (UsuarioEntity) obj;
		
	}
	
}
